package com.girant.logger.entity.dto;
import com.girant.mybatis.entity.RequestPage;
import com.girant.web.annotation.DateFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Size;
import lombok.Data;
import java.time.LocalDateTime;

//异常日志查询，参数导入（入参）
@Data
@Schema(description = "操作日志查询参数（所有参数均可为空，为空时不参与筛选）")
public class ErrorLogDTO extends RequestPage {
    //服务名称
    @Schema(description = "服务名称代码 使用字典key做查询条件：sysLogServerName", nullable = true)
    private String serverName;       // 服务名称（模糊匹配）

    //关键字查询
    @Schema(description = "关键字查询：匹配错误信息、异常堆栈信息、操作人昵称、浏览器、浏览器版本", nullable = true)
    @Size(max = 100, message = "关键字长度不能超过100字符")
    private String keyword; // 关键字（匹配错误信息、异常堆栈信息）

    //分布式追踪ID
    @Schema(description = "分布式追踪ID", nullable = true)
    private String traceId;

    // 分布式跨度ID
    @Schema(description = "分布式跨度ID",nullable = true)
    private String spanId;

    // 操作开始时间字符串
    @Schema(description = "操作开始时间（格式：yyyy-MM-dd HH:mm）")
    private LocalDateTime operationStartTime; // 时间精度提升到时分秒（原LocalDate只能到日期）

    // 操作结束时间字符串
    @Schema(description = "操作结束时间（格式：yyyy-MM-dd HH:mm）")
    private LocalDateTime operationEndTime;   // 时间精度提升到时分秒

    //访问源IP
    @Schema(description = "访问源IP", nullable = true)
    private String sourceIp;

}